package apibasej.basic.config;

import java.util.Locale;
import java.util.TimeZone;
import java.util.logging.Level;

public interface CommonProperties {

	public static final String SEPARATOR_PATTERN_BOOLEAN = "/"; // EX: Sim/Não
	
	// *** se quiser usar outro valor global para esta propriedades, setar usando o metodo setPropDefaultForAll(...) do ConfigConsumer
	
	//public static final Prop<ArrayList<Trigger>> TRIGGERS = new Prop<ArrayList<Trigger>>(new ArrayList<Trigger>());
	
	//usar o UtilLog
	//public static final Prop<Logger> LOGGER = new Prop<Logger>(Logger.getLogger(CommonProperties.class.getName()+".Logger"));
	
	public static final Prop<Level> LOG_LEVEL = new Prop<Level>(Level.INFO);
	public static final Prop<LogInterface> LOGGER_IMPL = new Prop<LogInterface>(new LogConsole(),false);
	
	public static final Prop<Long> TIME_CORRECTION = new Prop<Long>(0L); // para diferenças entre o time da máquina e o correto (do servidor)
	
	public static final Prop<String> CHARSET = new Prop<String>("UTF-8"); 
	public static final Prop<String> PATTERN_DATE_TIME = new Prop<String>("dd/MM/yyyy HH:mm:ss");
	public static final Prop<String> PATTERN_DATE = new Prop<String>("dd/MM/yyyy");
	public static final Prop<String> PATTERN_TIME = new Prop<String>("HH:mm:ss");
	public static final Prop<String> PATTERN_BOOLEAN = new Prop<String>("Sim/Não");
	
	public static final Prop<Character> DECIMAL_SEPARATOR = new Prop<Character>(',');
	public static final Prop<Character> GROUPING_SEPARATOR = new Prop<Character>('.');
	public static final Prop<Integer> GROUPING_SIZE = new Prop<Integer>(3);
	public static final Prop<Integer> MINIMUM_FRACTION_DIGITS = new Prop<Integer>(2);
	public static final Prop<Integer> MAXIMUM_FRACTION_DIGITS = new Prop<Integer>(2);
	public static final Prop<Integer> MINIMUM_INTEGER_DIGITS = new Prop<Integer>(1);
	
	public static final Prop<TimeZone> TIME_ZONE = new Prop<TimeZone>(TimeZone.getTimeZone("America/Sao_Paulo"));
	public static final Prop<Locale> LOCALE = new Prop<Locale>(new Locale("pt","BR"));
	
	
	
}
